package com.shioirikukuri.mapper;

import com.shioirikukuri.entity.ServiceType;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface ServiceTypeMapper {

	/**
	 * 查询所有服务类型
	 *
	 * @return 服务类型列表
	 */
	@Select("SELECT * FROM service_type")
	List<ServiceType> selectAllServiceTypes();

	/**
	 * 根据服务类型ID查询服务类型
	 *
	 * @param serviceId 服务类型ID
	 * @return 匹配的服务类型对象
	 */
	@Select("SELECT * FROM service_type WHERE service_id = #{serviceId}")
	ServiceType selectServiceTypeById(@Param("serviceId") Integer serviceId);

	/**
	 * 插入新的服务类型
	 *
	 * @param serviceType 新服务类型的信息
	 */
	@Insert("INSERT INTO service_type(service_name, description, price, applicable_type) VALUES(#{serviceName}, #{description}, #{price}, #{applicableType})")
	@Options(useGeneratedKeys = true, keyProperty = "serviceId")
	void insertServiceType(ServiceType serviceType);

	/**
	 * 更新已有服务类型的信息
	 *
	 * @param serviceType 需要更新的服务类型信息
	 */
	@Update("UPDATE service_type SET service_name=#{serviceName}, description=#{description}, price=#{price}, applicable_type=#{applicableType} WHERE service_id=#{serviceId}")
	void updateServiceType(ServiceType serviceType);

	/**
	 * 删除指定ID的服务类型
	 *
	 * @param serviceId 服务类型ID
	 */
	@Delete("DELETE FROM service_type WHERE service_id = #{serviceId}")
	void deleteServiceTypeById(@Param("serviceId") Integer serviceId);
}